Messaging, as discussed herein, may be considered as a method that allows entities to communicate by sending and receiving messages without requiring human interaction. An important aspect of messaging is its asynchronous nature which means that the sender of a message does not need to wait for the recipient to receive the information. Thus, sending applications can be free to generate messages at an appropriate speed, handling peak periods as they occur, without having to wait for recipients to deal with the requests.
It is known to process messages sequentially or in parallel, depending on the processing/execution environment for example. In a sequential execution environment, message requests are executed according to the original sequence of the message requests (e.g., in an environment where the target system has only a single processor for executing message requests). However, in a parallel execution environment (e.g., an environment where the target system has two or more processors), preservation of a particular message sequence cannot be guaranteed because the parallel execution system starts a new thread for each incoming message request and executes requests without regard to an intended order of the requests. As a result, the execution of two consecutive related requests may be transposed and cause an execution error.